package com.interceptor.component;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

/**
 * @Description 拦截器1
 *
 * @author 堆堆堆
 * @date 2018年4月17日 下午5:41:46
 */
public class Interceptor1 implements HandlerInterceptor {

	/**
	 * 整个请求结束之后
	 */
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception {
		System.out.println("Interceptor1，在整个请求结束之后被调用，也就是在DispatcherServlet 渲染了对应的视图之后执行（主要是用于进行资源清理工作）");
	}

	/**
	 * 请求处理之后
	 */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception {
		System.out.println("Interceptor1，请求处理之后进行调用，但是在视图被渲染之前（Controller方法调用之后）");
	}

	/**
	 * 请求处理之前
	 */
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("Interceptor1，在请求处理之前进行调用（Controller方法调用之前）");

		// 返回 true 则继续向下执行，返回 false 则取消当前请求
		return true;
	}

}
